package com.goods.business.service;

import com.goods.common.vo.business.InStockDetailVO;
import com.goods.common.vo.business.InStockVO;
import com.goods.common.vo.system.PageVO;

/**
 * Title:
 * Author: fusu
 * DateTime:  2023/3/25
 * Description:
 **/
public interface InStockService {
    /**
     * @return com.goods.common.vo.system.PageVO
     * @Author: fusu
     * @Description: 入库记录列表展示
     * @DateTime:9:33 2023/3/25
     * @params: [pageNum, pageSize, inStockVO]
     */
    PageVO findInStockList(Integer pageNum, Integer pageSize, InStockVO inStockVO);

    /**
     * @return void
     * @Author: fusu
     * @Description: 入库记录添加
     * @DateTime:15:31 2023/3/25
     * @params: [inStockVO]
     */
    void addIntoStock(InStockVO inStockVO);

    /**
     * @return com.goods.common.vo.business.InStockDetailVO
     * @Author: fusu
     * @Description: 入库记录明细
     * @DateTime:8:44 2023/3/27
     * @params: [inStockId]
     */
    InStockDetailVO getInStockDetail(Long inStockId);

    /**
     * @return void
     * @Author: fusu
     * @Description: 通过审核入库
     * @DateTime:9:23 2023/3/27
     * @params: [inStockId]
     */
    void publishInStock(Long inStockId);

    /**
     * @return void
     * @Author: fusu
     * @Description: 加入回收站
     * @DateTime:10:36 2023/3/27
     * @params: [inStockId]
     */
    void removeByInStockId(Long inStockId);

    /**
     * @return void
     * @Author: fusu
     * @Description: 删除入库记录
     * @DateTime:10:45 2023/3/27
     * @params: [inStockId]
     */
    void deleteByInstockId(Long inStockId);

    /**
     * @return void
     * @Author: fusu
     * @Description: 还原入库记录
     * @DateTime:14:09 2023/3/27
     * @params: [inStockId]
     */
    void backByInStockId(Long inStockId);
}
